package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class RHH_LINEAS_CORPORATIVAS {

    private int ID;
    private int ID_SUCURSAL;
    private int NUMERO;
    private int ID_COMPANIA_CELULAR;
    private int ESTADO;
    private Conexion con = null;

    public RHH_LINEAS_CORPORATIVAS(Conexion con) {
        this.con = con;
    }

    public RHH_LINEAS_CORPORATIVAS(int ID, int ID_SUCURSAL, int NUMERO, int ID_COMPANIA_CELULAR, int ESTADO) {
        this.ID = ID;
        this.ID_SUCURSAL = ID_SUCURSAL;
        this.NUMERO = NUMERO;
        this.ID_COMPANIA_CELULAR = ID_COMPANIA_CELULAR;
        this.ESTADO = ESTADO;
    }

    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_LINEAS_CORPORATIVAS (ID, ID_SUCURSAL, NUMERO, ID_COMPANIA_CELULAR, ESTADO) VALUES (" + ID + "," + ID_SUCURSAL + "," + NUMERO + "," + ID_COMPANIA_CELULAR + "," + ESTADO + ")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_LINEAS_CORPORATIVAS_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }    
    
    public RHH_LINEAS_CORPORATIVAS buscarxNumero(String numero) throws SQLException {
        String consulta = "select * from BROKER.RHH_LINEAS_CORPORATIVAS where NUMERO='"+numero+"'";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_LINEAS_CORPORATIVAS> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }
    public RHH_LINEAS_CORPORATIVAS buscarxid(int id) throws SQLException {
        String consulta = "select * from BROKER.RHH_LINEAS_CORPORATIVAS where ID="+id;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_LINEAS_CORPORATIVAS> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }
    
    public List<Integer> TodosNumeros() throws SQLException {
        String consulta = "select * from BROKER.RHH_LINEAS_CORPORATIVAS";
        ResultSet rs = con.EjecutarConsulta(consulta);
        
        List<Integer> lista = new ArrayList<>();
        while(rs.next())
        {
            lista.add(rs.getInt("NUMERO"));
        }
        return lista;
    }

    public boolean Deshabilitar() throws SQLException {
        String consulta = "update BROKER.RHH_LINEAS_CORPORATIVAS set ESTADO = 1 where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean habilitar() throws SQLException {
        String consulta = "update BROKER.RHH_LINEAS_CORPORATIVAS set ESTADO = 0 where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_LINEAS_CORPORATIVAS> Todos(String text) throws SQLException {
        String consulta = "SELECT RHH_LINEAS_CORPORATIVAS.*\n" +
                        "  FROM BROKER.RHH_LINEAS_CORPORATIVAS, BROKER.RHH_SUCURSAL\n" +
                        " WHERE     (RHH_LINEAS_CORPORATIVAS.ID_SUCURSAL = RHH_SUCURSAL.ID(+)) and RHH_LINEAS_CORPORATIVAS.ESTADO=0\n" +
                        "       AND (TO_CHAR(RHH_LINEAS_CORPORATIVAS.NUMERO) LIKE '"+text+"%' or\n" +
                        "       (RHH_SUCURSAL.DESCRIPCION LIKE '%"+text+"%'))";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_LINEAS_CORPORATIVAS> lista = Cargar(rs);
        return lista;
    }
    public List<RHH_LINEAS_CORPORATIVAS> TodosiNACTIVOS(String text) throws SQLException {
        String consulta = "SELECT RHH_LINEAS_CORPORATIVAS.*\n" +
                        "  FROM BROKER.RHH_LINEAS_CORPORATIVAS, BROKER.RHH_SUCURSAL\n" +
                        " WHERE     (RHH_LINEAS_CORPORATIVAS.ID_SUCURSAL = RHH_SUCURSAL.ID(+)) and RHH_LINEAS_CORPORATIVAS.ESTADO=1\n" +
                        "       AND (TO_CHAR(RHH_LINEAS_CORPORATIVAS.NUMERO) LIKE '"+text+"%' or\n" +
                        "       (RHH_SUCURSAL.DESCRIPCION LIKE '%"+text+"%'))";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_LINEAS_CORPORATIVAS> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_LINEAS_CORPORATIVAS> Cargar(ResultSet rs) throws SQLException {
        List<RHH_LINEAS_CORPORATIVAS> lista = new ArrayList<RHH_LINEAS_CORPORATIVAS>();
        while (rs.next()) {
            RHH_LINEAS_CORPORATIVAS objeto = new RHH_LINEAS_CORPORATIVAS(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setID_SUCURSAL(rs.getInt("ID_SUCURSAL"));
            objeto.setNUMERO(rs.getInt("NUMERO"));
            objeto.setID_COMPANIA_CELULAR(rs.getInt("ID_COMPANIA_CELULAR"));
            objeto.setESTADO(rs.getInt("ESTADO"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getID_SUCURSAL() {
        return ID_SUCURSAL;
    }

    public void setID_SUCURSAL(int ID_SUCURSAL) {
        this.ID_SUCURSAL = ID_SUCURSAL;
    }

    public int getNUMERO() {
        return NUMERO;
    }

    public void setNUMERO(int NUMERO) {
        this.NUMERO = NUMERO;
    }

    public int getID_COMPANIA_CELULAR() {
        return ID_COMPANIA_CELULAR;
    }

    public void setID_COMPANIA_CELULAR(int ID_COMPANIA_CELULAR) {
        this.ID_COMPANIA_CELULAR = ID_COMPANIA_CELULAR;
    }

    public int getESTADO() {
        return ESTADO;
    }

    public void setESTADO(int ESTADO) {
        this.ESTADO = ESTADO;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
